#include <iostream>
using namespace std;

const int STACK_SIZE = 100;
class stack {
private:


  int data[STACK_SIZE];
 public:
  virtual void  push(int val) {
    cout << val << " pushed" << endl;
  }
};


class mstack : public stack {
public:
  void push(int val1, int val2, int val3) {
    push(val1);
    stack::push(val2);
    stack::push(val3);
  }
  void push(int val) {
    cout << val << " pushed deep" << endl;
  }
};


int main()
{
  stack aStack;
  mstack bStack;

  //  aStack.push(5);
  //  bStack.push(99);
    bStack.push(1,2,3);
}
